0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标签 > Verilog HDL

Verilog HDL

+关注 0人关注

Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

文章: 43
视频: 60
浏览: 50408
帖子: 50

Verilog HDL简介

  Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

Verilog HDL百科

  Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

  以模块为基础的设计

  描述复杂的硬件电路,设计人员总是将复杂的功能划分为简单的功能,模块是提供每个简单功能的基本结构。设计人员可以采取“自顶向下”的思路,将复杂的功能模块划分为低层次的模块。这一步通常是由系统级的总设计师完成,而低层次的模块则由下一级的设计人员完成。自顶向下的设计方式有利于系统级别层次划分和管理,并提高了效率、降低了成本。“自底向上”方式是“自顶向下”方式的逆过程。

  使用Verilog描述硬件的基本设计单元是模块(module)。构建复杂的电子电路,主要是通过模块的相互连接调用来实现的。模块被包含在关键字module、endmodule之内。实际的电路元件。Verilog中的模块类似C语言中的函数,它能够提供输入、输出端口,可以实例调用其他模块,也可以被其他模块实例调用。模块中可以包括组合逻辑部分、过程时序部分。例如,四选一的多路选择器,就可以用模块进行描述。它具有两个位选输入信号、四个数据输入,一个输出端,在Verilog中可以表示为:

  module mux (out, select, in0, in1, in2, in3);output out;input [1:0] select;input in0, in1, in2, in3;//具体的寄存器传输级代码endmodule

  设计人员可以使用一个顶层模块,通过实例调用上面这个模块的方式来进行测试。这个顶层模块常被称为“测试平台(Testbench)”。为了最大程度地对电路的逻辑进行功能验证,测试代码需要尽可能多地覆盖系统所涉及的语句、分支、条件、路径、触发、状态机状态,验证人员需要在测试平台里创建足够多的输入激励,并连接到被测模块的输入端,然后检测其输出端的表现是否符合预期(诸如SystemVerilog的硬件验证语言能够提供针对验证专门优化的数据结构,以随机测试的方式进行验证,这对于高度复杂的集成电路设计验证可以起到关键作用)。实例调用模块时,需要将端口的连接情况按照这个模块声明时的顺序排列。这个顶层模块由于不需要再被外界调用,因此没有输入输出端口:

  module tester;reg [1:0] SELECT;reg IN0, IN1, IN2, IN3;wire OUT;mux my_mux (OUT, SELECT, IN0, IN1, IN2, IN3); //实例调用mux模块,这个实例被命名为my_muxinitial //需要仿真的激励代码 begin endendmodule

  在这个测试平台模块里,设计人员可以设定仿真时的输入信号以及信号监视程序,然后观察仿真时的输出情况是否符合要求,这样就可以了解设计是否达到了预期。

  示例中的对模块进行实例引用时,按照原模块声明时的顺序罗列了输入变量。除此之外,还可以使用或者采用命名端口连接的方式。使用这种方式,端口的排列顺序可以与原模块声明时不同,甚至可以不连接某些端口:

  mux my_mux (.out(OUT), .select(SELECT), .in0(IN0), .in1(IN1), .in2(IN2), .in3(IN3));//使用命名端口连接,括号外面是模块声明时的端口,括号内是实际的端口连接//括号外相当于C语言的形式参数,括号内相当于实际参数endmodule

  上面所述的情况是,测试平台顶层模块的测试变量直接连接了所设计的功能模块。测试平台还可以是另一种形式,即测试平台并不直接连接所设计的功能模块,而是在这个测试平台之下,将激励模块和功能模块以相同的抽象级别,通过线网相互连接。这两种形式的测试平台都可以完成对功能模块的测试。大型的电路系统,正是由各个层次不同模块之间的连接、调用,来实现复杂的功能的。

  Verilog HDL 快速入门

  Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),它是以文本形式来描述数字系统硬件的结构和行为的语言。 世界上最流行的两种硬件描述语言是Verilog HDL和VHDL。

  注意,VerilogHDL是一种描述语言,它和常见的编程语言C有根本的不同。C语言,让计算机的CPU从上往下按顺序执行每一条指令,执行完程序就结束了。

  而,VerilogHDL主要是描述了一个数字模块的结构,或者行为。有点像商业合同,合同里面也会描述产品的结构,产品的功能等等。合同的每一个条款,并不需要严格的先后顺序,只要把项目的方方面面都考虑完整,写下来就OK了。VerilogHDL也是这样。

  我们用VerilogHDL描述数字模块的功能,剩下的交给编译器(如,Quartus),编译器会根据我们的要求设计重构FPGA内部硬件。对于大批懒人来说,这技术简直碉堡了。这就是EDA(Electronic Design Automation,电子设计自动化)。

  好,下面就来认识一下VerilogHDL

  我们先设计一个“数据选择器”:

  s是数据选择控制端,

  a,b是输入信号,y是输出信号

  这里写图片描述

  代码如下:

  module mux2_1(a, b, s, y); //模块名、模块接口名

  input a, b, s; // 定义输入端口

  output y; // 定义输出端口

  /* s为0时,选择a输出;

  s为1时,选择b输出。*/

  assign y = (s == 0) ? a : b; //输出信号

  endmodule12345678

  每个Verilog文件中都有一个module 开始,endmodule 结束的代码块。

  这个代码块的定义了一个名字叫 mux2_1 的模块,模块名后面紧跟的括号内写明了该模块的接口信号,相当于数字器件的引脚。

  但是括号内没有说明接口的信号方向,所以紧跟着另起一行用input 和output 再说明一下。注释和C语法一样,可以用// 或 /* */ 。

  assign 是Verilog的关键词,书上称为连续赋值。我一般把他视为“连线”操作,assign后面的紧跟的 y 在硬件上是一根导线(或输出引脚)。

  assign  y = (s == 0) ? a : b;

  这句话的意思是:s如果为0,那么等号左边就是a,否则就是b。将这个表达式的输出结果接在输出引脚 y 上。

  这就是一个简单的Verilog程序,不需要我们去设计与非门,直接表达你的你想要的功能就好了。然后,编译下载到FPGA,功能就实现了。

  要注意的是,assign 后面永远跟着一个 =,它们是一起使用的。

  即,assign xx = zz;

  上面的2选1数据选择器,内部实现结构如下:

  这里写图片描述

  所以,上面的assign语句还可以这样写,直接使用逻辑表达式:

  assign y = (a & (~ s)) | (b & s);

  这个是在门级对逻辑关系进行描述,所以不属于行为描述,算是结构描述吧。下面这种描述方式,叫做门原语,算结构描述。这里的关键词wire 表示电路中的导线(信号线)。

  module mux2_1(a, b, s, y);

  input a, b, s;

  output y;

  wire ns, as, bs;

  not(ns, s);//这里使用了一个非门,输出是ns,输入是s

  and(as, a, ns);//使用一个与门,输出as,输入a和ns

  and(bs, b, s);//使用与门,输出bs,输入b和s

  or(y, as, bs);//使用或门,输出y,输入as和bs

  endmodule12345678910

  看,这是告诉我们电路中有什么元器件,又是怎么连接的,所以这个属于结构描述。

  很明显,有时候结构描述比行为描述要费力得多,而且不太容易理解程序功能。

  另外,上面的这个程序中,这4个逻辑门的顺序,可以随便写,不用管先后顺序。

  这个数据选择器,还可以使用如下行为描述方法:

  module mux2_1(a, b, s, y);

  input a, b, s;

  output y;

  reg y; //reg 表示寄存器

  always @(a, b, s)

  begin

  if(!s) y = a;

  else y = b;

  end

  endmodule1234567891011

  这里reg表示寄存器(存储器),需要提醒一下的是,assign后面只能接wire型,不能接reg型。(当然output从物理上也是wire)

  为什么不能?因为寄存器的赋值除了需要输入信号,还需要触发信号(例如D触发器寄存器),assign?sorry,he can’t。

  always @(a, b, s)中,括号里面的输入信号a,b,s表示敏感信号。

  always @( ) 是连在一起使用的。

  这句话的意思是,敏感信号列表中的任何一个信号发生变化,将会引发

  begin …… end 之间的行为。

  Verilog用begin和end包围代码段,相当于c语言中的大括号{ }的功能。

  if(!s) y = a;

  这里的“=”单独使用,叫做“阻塞赋值”。我把他理解为“串行赋值”。

  比如,有这么一段代码:

  b=a;

  c=b;

  那么最后,c的值就等于a,这个行为在描述的时候,语句的先后顺序,决定了赋值的先后。

  在Verilog中,和它对应的还有一个“非阻塞赋值”,表示方法是 《=,我把这种赋值称为“并行赋值”。具体区别,请参考另一篇短文阻塞赋值和非阻塞赋值。

查看详情

verilog hdl知识

展开查看更多

verilog hdl技术

FPGA打砖块小游戏设计思路

  交流问题   Q :FPGA打砖块小游戏,如何基于FPGA用verilog语言在Vivado平台上写打砖块小游戏,最好能用到PS2与VGA。 A :...

2024-12-09 标签:FPGAVerilog HDLVivado 152 0

例说Verilog HDL和VHDL区别

例说Verilog HDL和VHDL区别

Verilog和VHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的Verilog和VHDL进行了讨论。

2023-12-20 标签:NANDasicVHDL语言 3685 0

FPGA入门篇:Verilog计数器

FPGA入门篇:Verilog计数器

Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完...

2023-12-07 标签:fpgaVerilogVerilog HDL 2895 0

如何完成一个FPGA工程?

prj为工程文件存放目录;rtl为verilog可综合代码存放目录;tb为测试文件存放目录;image为设计相关图片存放目录;doc为设计相关文档存放目...

2023-01-10 标签:fpgaFPGA芯片Verilog HDL 523 0

FPGA技术之Verilog语法基本概念

Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型也称为模块。Verilo...

2022-12-08 标签:fpgaVerilogVerilog HDL 2718 0

FPGA设计技巧分享

一般情况下,系统中统一用posedge避免用negedge,降低设计的复杂度,可减少出错。

2022-07-27 标签:fpga时序逻辑Verilog HDL 995 0

深入理解FPGA Verilog HDL语法(二)

今天给大侠带来的是一周掌握FPGA Verilog HDL 语法,今天开启第二天。上一篇提到了整数型以及参数型,此篇我们继续来看变量以及后续其他内容,结...

2022-07-18 标签:fpga变量Verilog HDL 1643 0

Verilog HDL应用及数字IC设计与流程概述

Verilog HDL应用及数字IC设计与流程概述

一、HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言。那么什么是硬件描述语言呢?为什...

2020-10-21 标签:fpgaIC设计Verilog HDL 4409 0

Verilog HDL语言技术要点

Verilog HDL语言技术要点

基于FPGA的SOC在嵌入式系统应用越来越广了,往往一个复杂系统使用一个单芯片基于FPGA的SOC就搞定了。比较流行的方案主要有Altera/xilin...

2020-09-01 标签:C语言Verilog HDL 4379 0

Verilog HDL的程序结构_veriloghdl的关键字

Verilog HDL的程序结构_veriloghdl的关键字

首先我们不开始讲Verilog HDL的语法,我们从Verilog HDL的程序结构出发。相信大家都看过芯片吧,它有个名字,有个外壳,外壳向外伸出有引脚...

2020-08-27 标签:VerilogVerilog HDL 2500 0

查看更多>>

verilog hdl资讯

Verilog HDL语言的数据类型和运算符

标识符可以是一组字母、数字、下划线和$符号的组合,且标识符的第一个字符必须是字母或者下划线。

2022-07-04 标签:寄存器运算符Verilog HDL 1361 0

Verilog HDL课程详细介绍

原文标题:非常详细的Verilog讲义教程 文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。       审核编辑:彭静

2022-07-04 标签:软件Verilog HDL 796 0

FPGA、Verilog HDL与VHDL的优缺点

Verilog HDL 优点:类似C语言,上手容易,灵活。大小写敏感。在写激励和建模方面有优势。 缺点:很多错误在编译的时候不能被发现。 VHDL 优点...

2021-08-20 标签:dspfpgaC语言 4564 0

Verilog HDL verilog hdl和vhdl的区别

Verilog HDL是一种以文本形式描述数字系统硬件的结构和行为的硬件描述语言,也可描述逻辑电路图、逻辑表达式等。Verilog HDL和VHDL是目...

2021-07-23 标签:VHDLVerilog HDL 1.1万 0

Verilog HDL中定义的26个有关门级的关键字中常用的有哪些?

1、结构描述形式 从电路结构的角度来描述电路模块,称为结构描述形式。 Verilog HDL中定义了26个有关门级的关键字,比较常用的有8个: and ...

2021-07-02 标签:Verilog HDL 3052 0

Verilog HDL中的结构建模方式细述

Verilog HDL中的结构建模方式细述

模块的端口可以是输入端口、输出端口或双向端口。

2021-03-14 标签:UDP端口Verilog HDL 3449 0

基于Verilog HDL描述语言实现交通灯系统控制器的设计

基于Verilog HDL描述语言实现交通灯系统控制器的设计

 EDA技术是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系...

2020-07-21 标签:交通灯系统控制器Verilog HDL 8157 0

Verilog HDL语言在FPGA/CPLD中的应用

Verilog HDL语言在FPGA/CPLD中的应用

通常设计数字电路大都采用自顶向下将系统按功能逐层分割的层次化设计方法,这比传统自下向上的EDA设计方法有更明显的优势(当时的主要设计文件是电路图)。因为...

2020-07-20 标签:fpgaedaVerilog HDL 2050 0

Verilog HDL之多路选择器设计

Verilog HDL之多路选择器设计

在数字信号的传输过程中,有时需要从多路输入数据中选出某一路数据,完成此功能的逻辑器件称为数据选择器,即所谓多路开关,简称MUX(Multiplexer)...

2020-07-20 标签:Verilog HDL多路选择器 4704 0

7段译码器的Verilog HDL源代码

电子发烧友网核心提示: 本例程是Verilog HDL源代码:关于基本组合逻辑功能中7段译码器的功能实现源代码。注意:程序运行在不同软件平台可能要作一些...

2012-10-15 标签:译码器Verilog HDLHDL源代码 2.3万 0

查看更多>>

verilog hdl数据手册

相关标签

相关话题

换一批
  • Maxim Integrated
    Maxim Integrated
    +关注
    在 Maxim Integrated,我们正在解决工程问题并支持设计创新,使我们的客户能够创造出塑造我们世界的产品。我们创新的高性能模拟和混合信号产品和技术使系统更小、更智能,同时增强了安全性并提高了能源效率。
  • USB3.1
    USB3.1
    +关注
    USB 3.1 Gen2是最新的USB规范,该规范由英特尔等公司发起。数据传输速度提升可至速度10Gbps。与USB 3.0(即USB3.1 Gen1)技术相比,新USB技术使用一个更高效的数据编码系统,并提供一倍以上的有效数据吞吐率。
  • CC3200
    CC3200
    +关注
  • ADXL362
    ADXL362
    +关注
    ADI有定制一些极致的产品,ADXL362。主要针对运动健康类的检测。用户希望在运动时启动运动分析,在相对静止时,系统可以休眠以节省功耗。
  • 时钟信号
    时钟信号
    +关注
    时钟信号是计算机科学以及相关领域用语,时钟信号通常被用于同步电路当中,扮演计时器的角色,保证相关的电子组件得以同步运作。时钟信号是由时钟发生器产生的。它有只有两个电平,一是低电平,另一个是高电平。高电平可以根据电路的要求而不同,例如 TTL 标准的高电平是 5V。
  • D-PHY
    D-PHY
    +关注
    D-PHY,是MIPI 协议中的一项,D-PHY提供了对DSI (串行显示接口)和CSI(串行摄像头接口)在物理层上的定义D-PHY 描述了源同步,高速,低功耗的物理层。
  • 蓝牙BLE
    蓝牙BLE
    +关注
    蓝牙ble称低功耗蓝牙。低功耗蓝牙是蓝牙技术联盟设计和销售的一种个人局域网技术。旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。相较经典蓝牙,低功耗蓝牙旨在保持同等通信范围的同时显著降低功耗和成本。
  • 汇顶
    汇顶
    +关注
    汇顶科技成立于2002年,作为人机交互领域可靠的技术与解决方案提供商,在包括手机、平板和可穿戴产品在内的智能移动终端人机交互技术领域不断取得新进展,陆续推出拥有自主知识产权的Goodix Link技术 、 指纹识别与触控一体化的IFS技术 、活体指纹检测技术等 。
  • 射频功率放大器
    射频功率放大器
    +关注
    射频功率放大器是对输出功率、激励电平、功耗、失真、效率、尺寸和重量等问题作综合考虑的电子电路,它还是各式各样无线发射机的重要组成部分。
  • 原边反馈
    原边反馈
    +关注
  • 集成运算放大器
    集成运算放大器
    +关注
    集成运算放大器简称集成运放,是由多级直接耦合放大电路组成的高增益模拟集成电路。自从1964年美国仙童半导体公司研制出第一个单片集成运算放大器μA702以来,集成运算放大器得到了广泛的应用,它已成为线性集成电路中品种和数量最多的一类。
  • AD1674
    AD1674
    +关注
  • ab类功放
    ab类功放
    +关注
  • 4.5G
    4.5G
    +关注
  • BAW
    BAW
    +关注
  • MVG
    MVG
    +关注
  • vout
    vout
    +关注
  • AD9858
    AD9858
    +关注
  • MU-MIMO
    MU-MIMO
    +关注
  • 分压
    分压
    +关注
  • AD8138
    AD8138
    +关注
  • 差分驱动器
    差分驱动器
    +关注
  • 电容测试仪
    电容测试仪
    +关注
  • 纳芯微
    纳芯微
    +关注
    苏州纳芯微电子股份有限公司 (Suzhou NOVOSENSE Microelectronics Co., Ltd.) 是高性能高可靠性模拟芯片的研发设计企业。
  • 选频放大器
    选频放大器
    +关注
      选频放大器(frequency selective amplifier)对某一段频率或单一频率的信号具有突出的放大作用,而对其他频率的信号具有较强抑制作用的放大单元。
  • AD9958
    AD9958
    +关注
  • Atlas
    Atlas
    +关注
  • MCP3421
    MCP3421
    +关注
  • Celeno
    Celeno
    +关注
  • 直流放大器
    直流放大器
    +关注
    直流放大器就是能放大直流信号的放大器。直流放大器常用于测量仪表。在高精度电位测量和生物电与物理电测量中,电信号往往很弱,而且变化缓慢,含有直流成分,经放大后才便于检测、记录和处理。此外,在许多情况下,被测信号源的内阻高,要求放大器具有高增益和高输入阻抗。具有这种特性的直流放大器也适合用作运算放大器。

关注此标签的用户(17人)

jf_37439352 1114502831 jf_10800708 发发开开心心 LYQWMY c123cccc 不羁的前奏D 咳咳12138 琅琊一方 youwozuozhujun 梦情缘 有生之年_欣喜相逢c

编辑推荐厂商产品技术软件/工具OS/语言教程专题